/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.agi.devsol.aplicacao.requisito;

import br.com.agi.devsol.aplicacao.comum.EditorEntidade;
import br.com.agi.devsol.aplicacao.comum.EditorEntidadeConversation;
import br.com.agi.devsol.aplicacao.estimativa.EstimativaWebAction;
import br.com.agi.devsol.aplicacao.estimativa.ListadorEstimativaContraNull;
import br.com.agi.devsol.aplicacao.estimativa.ListagemEstimativa;
import br.com.agi.devsol.dominio.Estimativa;
import br.com.agi.devsol.dominio.Requisito;
import br.com.agi.devsol.ejb.estimativa.ListadorEstimativa;
import br.com.agi.devsol.ejb.requisito.RepositorioRequisito;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.enterprise.context.Conversation;
import javax.enterprise.context.ConversationScoped;
import javax.inject.Inject;
import javax.inject.Named;

/**
 *
 * @author rgrosz
 */
@ConversationScoped
@Named
public class EditorRequisito extends EditorEntidadeConversation<Requisito> implements  Serializable{
    
    
    @EJB
    private RepositorioRequisito repositorio;

    @Inject
    private ControladorRequisitoView controladorRequisito;
    
    @Inject 
    private ListagemEstimativa listagemEstimativa;
    
    private ListadorEstimativaContraNull listadorEstimativa;
    
    private double media;
    
    @PostConstruct
    public void init(){
        this.listadorEstimativa = new ListadorEstimativaContraNull();
    }

    
    @Override
    public void editar(Requisito entidade) {
        super.setEntidade(entidade);   
        this.controladorRequisito.initConversation();
        this.controladorRequisito.exibeMenu();
        this.listadorEstimativa.setListador(entidade.getVotacao());
        this.listagemEstimativa.setListadorEstimativa(listadorEstimativa);
        this.listagemEstimativa.createLista();
        this.listagemEstimativa.initConversation();       
        this.recalcularMedia();
    }    
    
    public void recalcularMedia(){
        double total = 0;
        int qtd = 0;
        List <EstimativaWebAction> estimativaW;
        this.listagemEstimativa.createLista();
        estimativaW = this.listagemEstimativa.getEstimativas();
        for(EstimativaWebAction item : estimativaW){
            total += item.getEntidade().getValor();
            qtd+=1;
        }
        media = total / qtd;        
    }
    
    public String salvar(){
        repositorio.salvarRequisito(super.getEntidade());
        return "/requisitos/index";
    }
    
    public double getMedia(){
        return media;
    }
    
}
